package com.snpic.appaw.module.third.api.bjpt.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.math.BigDecimal;
/**
 * @author JiJun
 * @date 2025/9/16 18:09
 * @修改时间 2025/9/16 18:09
 * @description
 */
@Schema(description = "第三方 - 报价平台/车辆车型查询响应一部分")
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
public class CarModelInfoInquiryRespDto {

    @Schema(description = "号牌号码", required = true)
    private String licenseNo;

    @Schema(description = "号牌种类")
    private String licenseTypeCode;

    @Schema(description = "交管号牌种类")
    private String licensePlateType;

    @Schema(description = "精友VIN码解析响应")
    private String vinResultCode;

    @Schema(description = "VIN码/车架号")
    private String vin;

    @Schema(description = "车辆初登日期")
    private Date singleinDate;

    @Schema(description = "车辆制造日期")
    private Date makeDate;

    @Schema(description = "发动机号")
    private String engineNo;

    @Schema(description = "机动车种类")
    private String carKindCode;

    @Schema(description = "车辆种类")
    private String carKindCodeShow;

    @Schema(description = "交管车辆类型代码")
    private String vehicleKindTcCode;

    @Schema(description = "保信车辆种类")
    private String motorTypeCode;

    @Schema(description = "车辆所属性质")
    private String attachNature;

    @Schema(description = "车辆用途")
    private String carUseType;

    @Schema(description = "车主类型")
    private String insuredTypeCode;

    @Schema(description = "车主")
    private String carOwner;

    @Schema(description = "车主手机号")
    private String carOwnerMobile;

    @Schema(description = "车主证件类型")
    private String identifyType;

    @Schema(description = "车主证件号码")
    private String identifyNumber;

    @Schema(description = "车主地址")
    private String ownerAddress;

    @Schema(description = "被保险人与车辆关系")
    private String CarInsuredRelation;

    @Schema(description = "交管使用性质")
    private String pmUseNature;

    @Schema(description = "车辆使用性质")
    private String useNatureShow;

    @Schema(description = "新车购置日期")
    private Date purchaseInvoiceDate;

    @Schema(description = "新车购置价")
    private BigDecimal purchasePrice;

    @Schema(description = "国别性质")
    private String countryNature;

    @Schema(description = "核定载客/核定座位数")
    private Integer seatCount;

    @Schema(description = "核定载质量/吨位数")
    private BigDecimal tonCount;

    @Schema(description = "驾驶室准乘人数")
    private Integer limitCabPersons;

    @Schema(description = "整备质量")
    private Long completeKerbMass;

    @Schema(description = "排量")
    private BigDecimal displacement;

    @Schema(description = "功率")
    private BigDecimal power;

    @Schema(description = "玻璃类型")
    private String glassType;

    @Schema(description = "产品型号")
    private String ProdoctModel;

    @Schema(description = "检验有效日期止")
    private Date ineffectualDate;

    @Schema(description = "强制报废期止")
    private Date rejectDate;

    @Schema(description = "最近定检日期")
    private Date lastCheckDate;

    @Schema(description = "转移登记日期/过户日期")
    private Date vehicleTransferRegDate;

    @Schema(description = "制造厂名称")
    private String madeFactory;

    @Schema(description = "渠道类型")
    private String channelDetailCode;

    @Schema(description = "能源种类")
    private String FuelType;

    @Schema(description = "销售价格")
    private BigDecimal SalePrice;

    @Schema(description = "准牵引总质量")
    private Long haulage;

    @Schema(description = "机动车状态代码")
    private String vehicleStatus;

    @Schema(description = "发证日期")
    private Date licenseIssueDate;

    @Schema(description = "号牌底色")
    private String licenseBackgroundCode;

    @Schema(description = "车身颜色代码")
    private String vehicleColorCode;

    @Schema(description = "车身颜色名称")
    private String vehicleColorName;

    @Schema(description = "公告型号")
    private String jgAnnouncedModel;

    @Schema(description = "查询码（江苏）")
    private String pmQueryNo;

    @Schema(description = "校验码（江苏）一个图片")
    private String checkAnswer;

    @Schema(description = "扩展字段")
    private Map<String, String> extensionMap;

    @Schema(description = "车型信息列表")
    private List<CarModel> carModelList;

    @Schema(description = "交强商业重复投保信息")
    private List<ReInsuranceBCDto> reInsuranceBCList;

    @Schema(description = "交管返回数据")
    private PmVehicle pmVehicle;
}
